package com.xxxx.yoyo.dao;

import java.util.List;

import com.xxxx.yoyo.bean.Order;

/**
 * 和order表打交道的接口,接口中的所有方法都是对order表的操作
 * @author 28993
 *
 */
public interface IOrderDao {
	
	/**
	 * 向order表中添加一个订单
	 * @param order 订单
	 * @return 返回插入的条数
	 */
	int insertOrder(Order order);
	
	/**
	 * 根据订单详情 查询订单id
	 * @param order 订单
	 * @return 返回订单的id
	 */
	int selectIdByOrder(Order order);
	
	
	/**
	 * 根据订单id获取订单
	 * @param orderId 订单id
	 * @return 返回订单
	 */
	Order selectOrderById(int orderId);
	
	/**
	 * 更新订单
	 * @param order 订单
	 * @return 返回更新的条数
	 */
	int updateOrder(Order order);
	
	/**
	 * 根据用户id查询用户所有订单
	 * @param userId 用户id
	 * @return 返回订单列表
	 */
	List<Order> selectOrderListByUserId(int userId);
	
	/**
	 * 根据页码，每页条数查询订单列表
	 * @param page 页码
	 * @param size 每页条数
	 * @return 查询到的订单列表
	 */
	List<Order> selectOrderList(int page, int size);
	
	/**
	 * 获取订单的总条数
	 * @return 返回订单的总条数
	 */
	long selectOrderCount();
	
	/**
	 * 根据订单状态，页码，每页条数查询订单列表
	 * @param status 订单状态  1表示未付款，2表示已付款，3表示配送中，4表示已完成
	 * @param page 页码
	 * @param size 每页条数
	 * @return 返回查到的订单列表
	 */
	List<Order> selectOrderList(int status, int page, int size);
	
	/**
	 * 根据订单状态获取订单数量
	 * @param status 订单状态  1表示未付款，2表示已付款，3表示配送中，4表示已完成
	 * @return 返回订单数量
	 */
	long selectOrderCount(int status);
	
}
